Contract-Based Verification of MATLAB and Simulink Matrix-Manipulating Code
نویسندگان
چکیده
MATLAB/Simulink is a popular toolset for developing embedded software. The main target of the MATLAB/Simulink toolset is numerical computing applications and the tools offer a rich language for manipulating matrices. This paper presents an approach to automatic, modular, contract-based verification of programs written in a subset of the MATLAB programming language, with focus on efficiently handling the provided matrix manipulation functions. We restrict ourselves to the subset of MATLAB suitable for code generation, which means matrix types and shapes can be determined statically. We then present an approach to type and shape inference for matrices that is more strict than MATLAB, but aids verification. The type and shape information is then used in the verification. From the programs and contracts we generate verification conditions that are discharged with an of-the-shelf SMT solver. We present two approaches for verification: direct axiomatisation of built-in matrix functions and expansion of the functions. We evaluate our approaches on a number of examples and discuss challenges for automatic verification in this setting. We found that expansion of matrix functions can be very effective when the matrix sizes are relatively small, which is common in many embedded applications. TUCS Laboratory Distributed Systems Laboratory
منابع مشابه
Simulation and Verification of Vhdl Design of 32-bit Fpau in Simulink
The HDL Code Generation step in MATLAB generates HDL code from the fixed-point Matlab code. One can generate either VHDL or Verilog code that implements the Matlab design. In addition to generating synthesizable HDL code, HDL CoderTM also generates various reports, including a traceability report that helps to navigate between the Matlab code and the generated HDL code. It also shows resource u...
متن کاملAutomated Validation of Software Models
This paper describes the application of an automated verification tool to a software model developed at Ford. Ford already has in place an advanced model-based software development framework that employs the Matlab R ©, Simulink R ©, and Stateflow R © modeling tools. During this project we applied the invariant checker Salsa to a Simulink R ©/ Stateflow R © model of automotive software to check...
متن کاملModelling, simulation and verification of massively parallel algorithms
A novel approach to modelling, simulation and verification of parallel algorithms and structures is presented based on Matlab and Simulink environments. The approach is especially applicable to the verification of parallel algorithms for array processors. In this paper we focus on systolic arrays. The advantage is that the approach utilises professional and generally available tools. The effici...
متن کاملAbstract Frequency Analysis of Synchronous Systems
Frequency Analysis of Synchronous Systems Alexandre Chapoutot∗1, Matthieu Martel∗1 ∗ CEA Saclay, DRT/LIST/DTSI, 91191 Gif-sur-Yvette Cedex, France ABSTRACT Embedded systems often are described with graphical data flow languages like Matlab/Simulink or Lustre/SCADE, which are used at the first stage of development cycle, that is at the specification level. Most of program verification activities...
متن کاملRapid prototyping and verification of massively parallel algorithms
A novel approach to modelling, simulation and verification of parallel algorithms and structures is presented based on the Matlab and Simulink environments. The approach is especially applicable for the verification of parallel algorithms for array processors. In this paper we focus on systolic arrays. The advantage is that the approach utilises professional and generally available tools. The e...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2014